Всем привет! Помогите, не могу отправить массив клиенту.
Вот что есть:
1. аякс запрос к серверу:
function QueryItem(ip, code, Start, End) {
content = $.ajax({
url: '/result',
type: 'get',
data: ({IP: ip, CODE: code, START: Start, END: End}),
success: function(msg) {
SetTable(msg);
}
}).responseText;
return;
}
2. сервер запускает скульную функцию и результат отправляет клиенту:
GetData(res, params, function(rows){
SendClient(res, rows);
});
function GetData(res, params, callback) {
var i = 0;
var ip = params["p_IP"];
var code = params["p_CODE"];
var Start = params["p_START"];
var End = params["p_END"];
var tmpConnect = "Driver={SQL Server};Server=" + ip + ";Database=DB;UID=sa;PWD=pwd;";
odbc.open(tmpConnect, function(err, tmpDB) {
if (err) {
return console.log("Error!\n" + err);
}
var SQL = "SELECT * FROM [dbo].[ufn_getJornalRealizNew]('" + Start + "', '" + End + "', '" + code + "')";
tmpDB.query(SQL, function (err, rows, moreResultSets) {
if (err) {
return console.log('Error!\n' + err.message);
}
tmpDB.close();
callback(String(rows)); //без явного приведения к строке не прокатывает
});
});
}
function SendClient(res, data) {
res.end(data);
}
3. на клиенте хочется работать уже с массивом, а не со строкой.
понятное дело, что для строки такое не выполнится:
function SetTable(data) {
alert(data[1].FIO); //undefined
return;
}
а теперь вопрос: как передать клиенту массив, может заголовки какие надо отправить?
Или вообще в каком-то другом формате отправлять?
При попытке вызвать колбэк из ф-и GetData на сервере вот так:
callback(rows);
вместо
callback(String(rows));
получаю ошибку:
Код:
|
TypeError: first argument must be a string or Buffer
at SendClient (c:\www\reports\routes\realiz.js:252:9) |
При выводе результатов скульного запроса через console.log, вижу массив объектов, например:
[
{ k_rec: 126768,
FIO: 'ИВАНОВ ИВАН ИВАНОВИЧ',
RequestNo: '12/1-3000/14',
EST_GUID: 'C0DE6E44-C8B8-41AC-BB4B-75F329E318B9',
CostEst: 924,
NdsEst: 166.32,
TotalEst: 1090.32 },
{ k_rec: 126769,
FIO: 'СИДОРОВ СИДР СИДОРОВИЧ',
RequestNo: '12/1-3001/14',
EST_GUID: 'C0DE6E44-C8B8-41AC-BB4B-7535TR8I318B9',
CostEst: 385.26,
NdsEst: 45.62,
TotalEst: 420.88 }
]